NAT1(Full Cone)利用natter实现内网穿透并在公网上访问 – Timo在此Blog

您所在的位置:网站首页 光猫开启full cone nat NAT1(Full Cone)利用natter实现内网穿透并在公网上访问 – Timo在此Blog

NAT1(Full Cone)利用natter实现内网穿透并在公网上访问 – Timo在此Blog

2024-07-17 08:36| 来源: 网络整理| 查看: 265

NAT1(Full Cone)利用natter实现内网穿透并在公网上访问 2023-3-09 10:38 | 4,493 | 2 | 默认 | Timozaici 1530 字 | 7 分钟 检测NAT类型

需要用到的工具 Python https://www.python.org/downloads/ Natter.py https://github.com/MikeWang000000/Natter/tree/v0.9 建议使用Linux或者直接在路由器上运行,可以获得更好的穿透效果 首先需要检测当前网络的NAT类型是否满足打洞的要求,可以使用上面这个Natter.py脚本进行检测

python natter.py --check-nat

如果如图所示,没有报错就代表可以穿透可以进行下一步操作了

如果结果是↓这样的话则说明当前网络不满足穿透条件,无法穿透 穿透NAT

测试完成之后可以尝试穿透了

比如我想穿透内网的3389(RDP)远程桌面端口需要运行脚本并输入需要开放的端口即可

此时已经显示出来使用外网访问的IP地址和端口了,但是目前还是不能连接的,需要我们进路由器映射端口才可以

这里我以Ikuai软路由来演示,具体操作根据自己使用的路由器来决定哦

添加一个端口映射吧内网的某台主机的3389端口映射到外网的3389端口上

这样就建立好了映射关系了,此时用一台外网的电脑尝试访问

发现已经可以访问了,内网已经被穿透成功了

这个方法是利用NAT1来进行打洞,并维持隧道,测试成功后可以将python脚本放在后台运行

这里我使用的是screen,使用screen

screen python natter.py 3389

此时依次按下Ctrl+A+D即可让这个窗口切换到后台并保持运行了

进阶玩法

如果需要映射多个端口,比如内网的22,3389这两个端口的时候可以使用下面这种方法

编辑配置文件

vim ./natter-config.templete.json

这里可以实现两种不一样的穿透方法

上面的不需要指定IP地址只需要指定端口号就可以了 下面的需要指定内网的IP地址和端口号,这个模式不需要路由器设置端口转发

可以根据自己需求设置不同的模式,同时建议直选其中一种,然后将另一个的IP地址删除掉

下面是全部配置文件的参数

注意:JSON 配置文件不支持代码注释,此处为说明配置用途。{ “logging”: { “level”: “info”, // 日志等级:可选值:”debug”、”info”、”warning”、”error” “log_file”: “./natter.log” // 将日志输出到指定文件,不需要请留空:”” }, “status_report”: { // 当外部IP/端口发生改变时,会执行下方命令。 // 大括号 {…} 为占位符,命令执行时会被实际值替换。 // 不需要请留空:”” “hook”: “bash ./natter-hook.sh ‘{protocol}’ ‘{inner_ip}’ ‘{inner_port}’ ‘{outer_ip}’ ‘{outer_port}'”, “status_file”: “./natter-status.json” // 将实时端口映射状态储存至指定文件,不需要请留空:”” }, “open_port”: { // 此处设置 Natter 打洞IP:端口。(仅打洞) // 此处地址为 Natter 绑定(监听)的地址,Natter 仅对这些地址打洞,您需要手动设置端口转发。 // 注意:使用默认出口IP,请使用 0.0.0.0 ,而不是 127.0.0.1 。 “tcp”: [ “0.0.0.0:3456”, “0.0.0.0:3457” ], “udp”: [ “0.0.0.0:3456”, “0.0.0.0:3457” ] }, “forward_port”: { // 此处设置需要 Natter 开放至公网的 IP:端口。(打洞 + 内置转发) // Natter 会全自动打洞、转发,您无需做任何干预。 // 注意:使用本机IP,请使用 127.0.0.1,而不是 0.0.0.0 。 “tcp”: [ “127.0.0.1:80”, “192.168.1.100:443” ], “udp”: [ “127.0.0.1:53”, “192.168.1.100:51820” ] }, “stun_server”: { // 此处设置公共 STUN 服务器。 // TCP 服务器请确保 TCP/3478 端口开放可用; // UDP 服务器请确保 UDP/3478 端口开放可用。 “tcp”: [ “stun.stunprotocol.org”, “stun.voip.blackberry.com” ], “udp”: [ “stun.miwifi.com”, “stun.qq.com” ] }, “keep_alive”: “www.qq.com” // 此处设置 HTTP Keep-Alive 服务器。请确保该服务器 80 端口开放,且支持 HTTP Keep-Alive。 } 最后运行脚本即可实现多端口映射,自动更新IP等操作 python natter.py -c ./natter-config.templete.json 错误解读&解决方法

This OS or Python does not support reusing ports!此操作系统或者 Python 不支持端口重用。 解决方法: 推荐使用内核版本 4.0+ 的 Linux 系统。 No public STUN server is avaliable. Please check your Internet connection.没有可用的公共 STUN 服务器。请检查您的网络连接。 解决方法: 检查网络,检查防火墙是否阻止 TCP/UDP 端口 3478。 You cannot perform TCP hole punching in a symmetric NAT network.您无法在一个对称型 NAT 网络中实行 TCP 打洞。 解决方法: 此网络无法打洞。检查您的网络拓扑。检查您是否处于多层 NAT 下。 Q:Natter 给出了外部地址,但我没有办法访问。解决方法: 检查您是否正确配置了端口转发。检查您的目标服务是否正常启动。尝试关闭光猫的防火墙。如果处于多层 NAT 下,请在光猫或路由器下设置 DMZ 主机或者端口转发。如果上述方案不能解决改问题,则是运营商设置了防火墙,此网络无法开放 TCP 端口。 文章作者: Timo在此 文章链接: https://blog.xioxix.com/archives/277 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Timo在此! 评论 leaf Windows Edge 1 年前 2023-6-20 13:51:26

给你个新的命令: curl https://ghproxy.com/https://raw.githubusercontent.com/MikeWang000000/Natter/v0.9/natter.py | python – –check-nat 直接这样就能检测nat

OKAMA KENPU 1 周前 2024-7-10 1:34:43

Great information shared.. really enjoyed reading this post thank you author for sharing this post .. appreciated

Great information shared.. really enjoyed reading this post thank you author for sharing this post .. appreciated 发送评论 编辑评论 正在回复 的评论 : 上一篇[CTF]WEB Robots.txt文件下一篇 网络空间搜索引擎简单使用教程

© 2021 - 2024 Timo在此Blog. All Rights Reserved. | 已稳定运行 | Sitemap 桂ICP备2021008710号-2 本网站由又拍云提供CDN加速/云存储服务 桂公网安备 45012202000153号

Theme Argon


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3